package com.redstars.generate.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.redstars.generate.entity.SysFieldType;
import com.redstars.generate.page.PageResult;
import com.redstars.generate.vo.SysFieldTypeVo;
import com.redstars.generate.query.SysFieldTypeQuery;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 字段类型管理
 *
 * @author zhouhx 
 * @since 1.0.0 2022-10-05
 */
public interface SysFieldTypeService extends IService<SysFieldType> {
    /**
    *
    * @description 分页查询
    * @author zhouhx 
    * @since 1.0.0 2022-10-05
    */
    PageResult<SysFieldTypeVo> page(SysFieldTypeQuery query);
    /**
    *
    * @description 新增
    * @author zhouhx 
    * @since 1.0.0 2022-10-05
    */
    void save(SysFieldTypeVo vo);
    /**
    *
    * @description 修改
    * @author zhouhx 
    * @since 1.0.0 2022-10-05
    */
    void update(SysFieldTypeVo vo);
    /**
    *
    * @description 删除
    * @author zhouhx 
    * @since 1.0.0 2022-10-05
    */
    void delete(List<Long> idList);
    /**
    *
    * @description 详情
    * @author zhouhx 
    * @since 1.0.0 2022-10-05
    */
    SysFieldTypeVo detail(Long id);

    /**
     *
     * @description 获取全部字段类型
     * @author zhouhx
     * @since 1.0.0 2022-10-05
     */
    Set<String> getTypeList();

    /**
     *
     * @description 获取全部字段类型
     * @author zhouhx
     * @since 1.0.0 2022-10-05
     */
    Map<String, SysFieldType> getMap();

    /**
     * 根据tableId，获取包列表
     *
     * @param tableId 表ID
     * @return 返回包列表
     */
    Set<String> getPackageByTableId(Long tableId);
}